package com.xxwu.mybatis.mapper;
import com.xxwu.mybatis.model.ArticleInfo;
import com.xxwu.mybatis.model.userInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
@Mapper
public interface UserInfoXMLMapper {
    List<userInfo>  queryList();
    List<userInfo>  queryList1();


    Integer insert(userInfo userInfo);
    Integer delete(Integer id);
    Integer update(String password, Integer id);

    //多表查询
    ArticleInfo queryArticle(Integer id);

    //对数据表进行排序操作，此时#不能使用,#会自动加入"" ,此时传入desc则无法生效
    @Select("select * from userinfo order by id ${sortMethod}")
    List<userInfo> sort(String sortMethod);

    //模糊查询也不可使用单独的 # 进行
    @Select("select * from userinfo where username like '${username}' ")
    List<userInfo> sortByLike(String username);
    //但使用sql内置函数，字符串拼接格式进行模糊查询即可实现,这里的 #{username} 在sql语句中原本就是一个字符串
    //由于$存在sql注入的问题， 一般使用concat进行模糊查询
    @Select("select * from userinfo where username like concat('%',#{username},'%')")
    List<userInfo> sortByConcat(String username);

    //动态SQL
    Integer insert2(userInfo userInfo);
    List<userInfo> selectByIdOrName(Integer id, String username);
    Integer deleteById(List<Integer> ids);

}
